Proof of Concept solution to the internal.takeThroughDrain issues
#1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As I said in (this PR)[https://github.com/Spinoco/pull/33] the problem you had could have been related to the tests.
Today I played some more with the example and noticed that
fs2.concurrent.Queue.synchronous[F, A]can only contain one element at a time (which means that using this data structure for the implementation couldn't make it work).Using an
unboundedQueue in the implementation ofinternal.takeThroughDrainsolves the issue. I don't know if this changes the intended semantic of the author in some way but we could propose something based on this changes and finally update fs2-mail to fs2 2.0.1!P.S. I bumped the scala and sbt version only to make metals work. Probably the first two commits in this PR can be dropped.